import { createStore, createLogger } from 'vuex'

// 导入本地持久化插件
import createPersistedstate from 'vuex-persistedstate'

// 导入子模块
import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'

// vue3.0创建 store实例,使用 createStore()工厂函数
export default createStore({

  // 定义data变量
  state: {
  },

  // 修改定义的data的变量(同步)
  mutations: {
  },

  // 后台请求(异步)
  actions: {
  },

  // 模块化
  modules: {
    user,
    cart,
    category
  },

  /**
   * 'vuex-persistedstate'使用说明:
   * 1.默认集成之后存储所有数据
   * 2.可以通过配置指定储存的key 和存储哪些数据
   *
   * key是存储数据的键名, paths是存储state中的那些数据，如果是模块下具体的数据需要加上模块名称
   */
  plugins: [
    createPersistedstate({ key: 'rabbit-131', path: ['user', 'cart'] }),
    createLogger()
  ]
})
